[IA64] allow foreign domain page mapping of DOMID_XEN/DOMID_IO
authorawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Thu, 7 Dec 2006 22:02:37 +0000 (15:02 -0700)
committerawilliam@xenbuild2.aw <awilliam@xenbuild2.aw>
Thu, 7 Dec 2006 22:02:37 +0000 (15:02 -0700)
DOMID_XEN is used by xenmon, xentrace.

Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
xen/arch/ia64/xen/mm.c

index dbf1908c188bfcaad0c68e2231d0df88f6777e55..0a5acc0636d89dea8ee572895c7754af34e4861d 100644 (file)
@@ -1295,11 +1295,13 @@ __dom0vp_add_physmap(struct domain* d, unsigned long gpfn,
 
     if (unlikely(rd == d))
         goto out1;
-    if (is_gmfn) {
-        if (domid == DOMID_XEN || domid == DOMID_IO)
-            goto out1;
+    /*
+     * DOMID_XEN and DOMID_IO don't have their own p2m table.
+     * It can be considered that their p2m conversion is p==m.
+     */
+    if (likely(is_gmfn && domid != DOMID_XEN && domid != DOMID_IO))
         mfn = gmfn_to_mfn(rd, mfn_or_gmfn);
-    else 
+    else 
         mfn = mfn_or_gmfn;
     if (unlikely(!mfn_valid(mfn) || get_page(mfn_to_page(mfn), rd) == 0))
         goto out1;